package main.sort;

/**
 * Created by july on 2016/1/2.
 * 插入排序：
 * 每次将一个待排序的记录，按其关键字大小插入到前面已经排好序的子序列中的合适位置，直到全部记录
 * 插入完成为止。
 *
 */
public class InsertSort {

    public static void main(String[] args) {
        int[] unSorted  = {10,23,32,2,45,6,77,65,27,8};
        insert(unSorted);
        for(int i:unSorted){
            System.out.print(i + " ");
        }
        System.out.print("\n");
    }

    /**
     *
     * @param unSorted
     */
    private static void insert(int[] unSorted) {
        for(int i=1;i<unSorted.length;i++){
            int position = i;  //待插入位置
            int temp = unSorted[i];//待插入记录
            for(int j=i-1;j>=0;j--){
                if(unSorted[j] > temp){
                    unSorted[j+1]=unSorted[j];
                    position--;
                }else{
                    break;//跳出本次循环，此处用continue也一样
                }
            }
            unSorted[position]=temp;
        }

    }
}
